#!/usr/bin/env node

//Node CLI 应用入口文件必须要有这样的文件头
// 如果Linux 或者 macOS 系统下还需要修改此文件的读写权限为 755
//具体就是通过 chmod 755 cli.js 实现修改

// console.log('cli working');

// 脚手架的工作过程：
// 1. 通过命令行交互询问用户问题
// 2. 根据用户回答得结果生成文件

const fs = require('fs')
const path = require('path');
const inquirer = require('inquirer') //npm i inquirer
const ejs = require('ejs') //npm i ejs

inquirer.prompt([ //命令行交互
  {
    type:'input',
    name:'name',
    message:'Project name?'
  }
])
.then(answers=>{
  // console.log(answers); //{name:hello}
  //根据用户回答得结果生成文件
  //模板目录
  const tmplDir = path.join(__dirname,'templates')
  //目标目录
  const destDir = process.cwd() //命令行在哪运行，输出哪里
  //将模板下得文件全部转换到目标目录
  fs.readdir(tmplDir,(err,files)=>{
    if(err) throw err
    files.forEach(file=>{
      // console.log(file); //index.html  stype.css
      //通过模板引擎渲染路径文件
      ejs.renderFile(path.join(tmplDir,file),answers,(err,result)=>{ //参数1文件绝对路径，参数2内容，参数3回调
        if(err) throw err
        // console.log(result);
        //将结果写入目标文件路径
        fs.writeFileSync(path.join(destDir,file),result)
      })
    })
  })
})